<?php
/*
 * Copyright (c) 2011 Joao Paulo Cirino Silva de Novais <joaopaulonovais@gmail.com>
 *
 */

class TipoProfissionalControl extends Control {

    /*
     * Esse metodo e o responsavel por orquestrar as acoeses das classes de visao
     * e dados.
     */
    static function executar() {

        $acao = isset($_REQUEST["acao"]) ? $_REQUEST["acao"] : "";

        $visao             = new TipoProfissionalView();
        $tipo_profissional = new TipoProfissionalModel();

        self::load($tipo_profissional, $_REQUEST);

        switch ($acao) {

            case "Gravar":
                if ($tipo_profissional->get("cod_tipo_profissional")) {
                    TipoProfissionalDAO::alterar($tipo_profissional);
                    $mensagem = "Tipo de profissional alterado com sucesso.";
                } else {
                    TipoProfissionalDAO::inserir($tipo_profissional);
                    $mensagem = "Tipo de profissional cadastrado com sucesso.";
                }

                $visao->setMensagem($mensagem);
                //$visao->editar(new TipoProfissionalModel());
                $tipos_profissional = TipoProfissionalDAO::consultar(new TipoProfissionalModel());
                $visao->consultar($tipos_profissional);
                break;

            case "Remover":

                if ($tipo_profissional->get("cod_tipo_profissional")) {

                    TipoProfissionalDAO::remover($tipo_profissional);
                }

                $tipos_profissional = TipoProfissionalDAO::consultar(new TipoProfissionalModel());
                $visao->consultar($tipos_profissional);

                break;

            case "Consultar":

                try {

                    $tipos_profissional = TipoProfissionalDAO::consultar($tipo_profissional);

                    if ($tipos_profissional) {
                        $visao->consultar($tipos_profissional);
                    } else {
                        $visao->consultar(new TipoProfissionalModel());
                    }

                } catch (PDOException $e) {

                    echo $e->getMessage();
                }

                break;

            default: // $acao == "Editar"

                if ($tipo_profissional->get("cod_tipo_profissional")) {
                    try {

                        $tipos_profissional = TipoProfissionalDAO::consultar($tipo_profissional);
                        
                        if ($tipos_profissional) {

                            $tipo_profissional = $tipos_profissional[0];
                        }
                    } catch (PDOException $e) {

                        echo $e->getMessage();
                    }
                } else {

                    $tipo_profissional = new TipoProfissionalModel();
                }

                $visao->editar($tipo_profissional);
        }
    }
}

?>